import { RequestBody } from 'alova';

import ApiClient from '@/api/apiClient';

/**
 * AppInfo对象，应用信息表
 */
export interface AppInfoType {
	appIcon?: string;
	/**
	 * 应用标识
	 */
	code?: string;
	/**
	 * 创建人
	 */
	createBy?: string;
	/**
	 * 创建人id
	 */
	createId?: number;
	/**
	 * 创建时间
	 */
	createTime?: string;
	/**
	 * 所属企业主键ID
	 */
	enterpriseId?: number;
	/**
	 * 主键
	 */
	id?: number;
	/**
	 * 是否逻辑删除，0否,其他是
	 */
	isDelete?: number;
	/**
	 * 应用链接
	 */
	link?: string;
	/**
	 * 应用名称
	 */
	name?: string;
	/**
	 * 描述
	 */
	remark?: string;
	/**
	 * 接入密钥  自动生成 新增应用时不传
	 */
	secretKey?: string;
	/**
	 * 租户编码
	 */
	tenantCode?: number;
	/**
	 * 应用类型0官方 1自建
	 */
	type?: number;
	/**
	 * 修改人
	 */
	updateBy?: string;
	/**
	 * 修改人id
	 */
	updateId?: number;
	/**
	 * 更新时间
	 */
	updateTime?: string;
	/**
	 * 乐观锁版本号
	 */
	version?: number;
	[property: string]: any;
}

/** 应用-列表 */
export const adminAppInfoTListApi = (data: RequestBody) => {
	return ApiClient.Post<API.ListType<AppInfoType>>('/appInfo/page', data, {
		meta: {
			auth: true
		}
	});
};

/** 应用-增与编辑 */
export const adminAppInfoSaveOrUpdateApi = (data: Merged<AppInfoType, { id: number }>) => {
	return ApiClient.Post(`/appInfo/${data.id ? 'update' : 'save'}`, data);
};

/** 应用-删除 */
export const adminAppInfoTDeleteApi = (data: Merged<AppInfoType, { id: number }>) => {
	return ApiClient.Post(`/appInfo/delete/${data.id}`, { id: data.id });
};
